package me.zhengjie.modules.web.service.identity.impl;

import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import me.zhengjie.constant.ConstantUtils;
import me.zhengjie.modules.system.domain.IdentityItem;
import me.zhengjie.modules.system.service.IdentityItemService;
import me.zhengjie.modules.system.service.dto.IdentityItemDto;
import me.zhengjie.modules.system.service.dto.IdentityItemQueryCriteria;
import me.zhengjie.modules.web.domain.identity.IdentityDetailRequest;
import me.zhengjie.modules.web.domain.identity.IdentityListResp;
import me.zhengjie.modules.web.service.identity.IdentityService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

@Service
public class IdentityServiceImpl implements IdentityService {

    @Autowired
    private IdentityItemService identityItemService;

    @Override
    public List<IdentityListResp> list() {
        IdentityItemQueryCriteria criteria = new IdentityItemQueryCriteria();
        criteria.setStatus(ConstantUtils.Valid);
        List<IdentityItemDto> list = identityItemService.queryAll(criteria);
        if (CollectionUtils.isEmpty(list)){
            return null;
        }
        List<IdentityListResp> listResp = new ArrayList<>();
        list.forEach(s -> {
            IdentityListResp resp = new IdentityListResp();
            resp.setItemPic(s.getItemPic());
            resp.setItemId(s.getItemId());
            resp.setDiscountPrice(s.getDiscountPrice());
            resp.setItemNo(s.getItemNo());
            resp.setSalePrice(s.getSalePrice());
            resp.setTitle(s.getTitle());
            resp.setSubTitle(s.getSubTitle());
            listResp.add(resp);
        });
        return listResp;
    }

    @Override
    public IdentityListResp detail(String itemNo) {

        IdentityItem item = identityItemService.findOne(itemNo);
        if (Objects.isNull(item)){
            return null;
        }
        IdentityListResp resp = new IdentityListResp();
        resp.setItemPic(item.getItemPic());
        resp.setItemId(item.getItemId());
        resp.setDiscountPrice(item.getDiscountPrice());
        resp.setItemNo(item.getItemNo());
        resp.setSalePrice(item.getSalePrice());
        resp.setTitle(item.getTitle());
        resp.setSubTitle(item.getSubTitle());
        resp.setItemDesc(item.getItemDesc());
        return resp;
    }
}
